String maskIdNumber(String idNumber) {
  // 首先检查身份证号码是否合法，长度应该为18位
  if (idNumber.length != 18) {
    throw ArgumentError('Invalid ID number. It should be 18 digits.');
  }

  // 获取前3位和后3位
  String prefix = idNumber.substring(0, 3);
  String suffix = idNumber.substring(15);

  // 将中间部分替换为*
  String maskedIdNumber = '$prefix***********$suffix';

  return maskedIdNumber;
}
String maskPhoneNumber(String phoneNumber) {
  // 首先检查手机号码是否合法，长度应该为11位
  if (phoneNumber.length != 11) {
    throw ArgumentError('手机号不符合11位.');
  }

  // 获取前3位和后4位
  String prefix = phoneNumber.substring(0, 3);
  String suffix = phoneNumber.substring(7);

  // 将中间部分替换为*
  String maskedPhoneNumber = '$prefix****$suffix';

  return maskedPhoneNumber;
}
//过期、即将过期校验 1在有效期 2即将过期 3当天 4已过期
String compareDateWithCurrent(String dateString) {
  DateTime dateTime = DateTime.parse(dateString).toLocal();
  DateTime now = DateTime.now();

  dateTime = DateTime(dateTime.year, dateTime.month, dateTime.day);
  now = DateTime(now.year, now.month, now.day);

  // 检查日期是否晚于当前日期超过30天
  if (dateTime.isAfter(now.add(Duration(days: 30)))) {
    return "1";
  }
  // 检查日期是否晚于当前日期但不超过30天
  else if (dateTime.isAfter(now) && dateTime.isBefore(now.add(Duration(days: 30)))) {
    return "2";
  }
  // 检查日期是否与当前日期相同
  else if (dateTime.isAtSameMomentAs(now)) {
    return "3";
  }
  // 检查日期是否早于当前日期
  else {
    return "4";
  }
}
//里程转换KM
String convertMetersToKilometers(String metersString) {
  // 解析字符串为整数
  int meters = int.parse(metersString);

  // 转换为千米
  double kilometers = meters / 1000.0;

  // 格式化并返回字符串
  return kilometers.toStringAsFixed(2); // 返回保留两位小数的字符串
}
//信用
int divideAndRound(String strNumber, int divisor) {
  int number = int.parse(strNumber);
  int result = number ~/ divisor; // 使用 ~/ 运算符进行整除操作
  return result;
}
//获取城市code
String getCityCodeByName(List cities, String cityName) {
  String cityCode="";

  void findCityCode(List cities, String name) {
    for (var city in cities) {
      if (city['cityName'] == name) {
        cityCode = city['postalCode'];
      }
      if (city['cityShortName'] == name) {
        cityCode = city['postalCode'];
      }
      if (city['children'].isNotEmpty) {
        findCityCode(city['children'], name);
      }
    }
  }

  findCityCode(cities, cityName);

  return cityCode;
}
//截取code
String getCodeResult(String code) {
  if (code.substring(2) == "0000") {
    return code.substring(0, 2); // 如果后四位是0000，则只取前两位作为结果
  } else if (code.substring(4) == "00") {
    return code.substring(0, 4); // 如果只有后两位是00，则只取前四位作为结果
  } else {
    return code; // 否则都取
  }
}
//数组之间的去重
List removeElements(List originalList, List elementsToRemove) {
  originalList.removeWhere((element) => elementsToRemove.contains(element));
  return originalList;
}
